package beans;

import entidades.Processo;
import entidades.Usuario;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import rn.ProcessoRN;
import rn.TramitacaoAnexoRN;
import util.ContextoUtil;
import entidades.TramitacaoAnexo;

/**
 *
 * @author Marcelo Neto
 */
@ManagedBean(name="tramitacaoAnexoBean")
@ViewScoped
public class TramitacaoAnexoBean implements Serializable 
{
    private static final long serialVersionUID = -8563179493698885552L;
    private TramitacaoAnexo tramitacaoAnexo = new TramitacaoAnexo();
    private List<TramitacaoAnexo> listar;
    private Integer unidadeSelecionada;
    private Integer setorSelecionado;
    private String despacho;
    private Integer anexoSelecionado;
    private Integer processoSelecionado;
    private String numeroPag; //variável criada para exibir no HEADER da tabela de anexos
    
    public String getNumeroPag() 
    {
        try 
        {
            if(this.processoSelecionado != null)
            {
                ProcessoRN processoRN = new ProcessoRN();
                Processo processo = processoRN.carregarProcesso(this.processoSelecionado);
                String numPag = processo.getPag();
                this.setNumeroPag(numPag);
            }
        } 
        catch (Exception ex) {
        }
        return numeroPag;
    }

    public void setNumeroPag(String numeroPag) {
        this.numeroPag = numeroPag;
    }
    
    public String encaminhar()
    {
        try 
        {
            ContextoBean contextoBean = ContextoUtil.getContextoBean();
            Usuario usuario = contextoBean.getUsuarioLogado();
            Integer idanexo = this.anexoSelecionado;
            Integer omDestino = this.unidadeSelecionada;
            Integer setorDestino = this.setorSelecionado;
            String usuarioDespacho = this.despacho;

            // Atualiza a tabela TRAMITACAO
            TramitacaoAnexoRN tramitacaoRN = new TramitacaoAnexoRN();
            tramitacaoRN.salvarTramitacaoAnexo(this.tramitacaoAnexo, usuario, omDestino, setorDestino, usuarioDespacho, idanexo);
        }
        catch (Exception e) {
        }
        return null;
    }

    public void setListar(List<TramitacaoAnexo> listar) {
        this.listar = listar;
    }
    
    public List<TramitacaoAnexo> getListar() throws Exception 
    {
        Integer idanexo = this.anexoSelecionado;
        TramitacaoAnexoRN tramitacaoAnexoRN = new TramitacaoAnexoRN();
        this.listar = tramitacaoAnexoRN.listarTramitacaoPorAnexo(idanexo);
        return listar;
    }

    public TramitacaoAnexo getTramitacaoAnexo() {
        return tramitacaoAnexo;
    }

    public void setTramitacaoAnexo(TramitacaoAnexo tramitacaoAnexo) {
        this.tramitacaoAnexo = tramitacaoAnexo;
    }

    public String getDespacho() {
        return despacho;
    }

    public void setDespacho(String despacho) {
        this.despacho = despacho;
    }

    public Integer getUnidadeSelecionada() {
        return unidadeSelecionada;
    }

    public void setUnidadeSelecionada(Integer unidadeSelecionada) {
        this.unidadeSelecionada = unidadeSelecionada;
    }

    public Integer getSetorSelecionado() {
        return setorSelecionado;
    }

    public void setSetorSelecionado(Integer setorSelecionado) {
        this.setorSelecionado = setorSelecionado;
    }

    public Integer getAnexoSelecionado() {
        return anexoSelecionado;
    }

    public void setAnexoSelecionado(Integer anexoSelecionado) {
        this.anexoSelecionado = anexoSelecionado;
    }

    public Integer getProcessoSelecionado() {
        return processoSelecionado;
    }

    public void setProcessoSelecionado(Integer processoSelecionado) {
        this.processoSelecionado = processoSelecionado;
    }
}